#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>

#define Offset(s,m) ((size_t)(&(type*)0)->m)
//((type*)0)转换为type类型的结构体指针，起始地址为0
//((type*)0)->m 引用结构体成员m
//&(((type*)0)->m) 取出成员m地址
//((size_t)(&(type*)0)->m) 强制转换size_t类型

#define swap(num) (num=((num&0xaaaaaaaa)>>1)+((num&0x55555555)<<1))

int main(){
	int n = 10;
	swap(n);
	char s[32];
	_itoa(n, s, 2);
	printf("%s\n", s);
}